package com.zzyl.nursing.util;

import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class AgeCalculator {
    /**
     * 计算年龄
     * 
     * @param birthDateStr 生日日期字符串，格式为 "yyyy-MM-dd"
     * @return 当前年龄
     */
    public static int calculateAge(String birthDateStr) {
        // 定义日期格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        try {
            // 解析出生日期
            LocalDate birthDate = LocalDate.parse(birthDateStr, formatter);
            // 获取当前日期
            LocalDate currentDate = LocalDate.now();
            // 计算年龄
            Period period = Period.between(birthDate, currentDate);
            return period.getYears();
        } catch (DateTimeParseException e) {
            // 如果日期格式不正确，则抛出异常或处理错误
            System.err.println("Invalid date format. Please use 'yyyy-MM-dd'.");
            return -1; // 可以根据需求返回其他合适的值或处理方式
        }
    }
}
